home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1998 July / EnigmA AMIGA RUN 29 (1998)(G.R. Edizioni)(IT)[!][issue 1998-07 & 08].iso / recent / warpup1.lha / WarpUP-WarpOS / Source / tools / dbreak.p < prev    next >
Text File  |  1997-06-22  |  2KB  |  100 lines

  1.         incdir  include:
  2.         incdir  lvo:
  3.  
  4.         include powerpc/ppcmacros.i
  5.         include powerpc/powerpc.i
  6.  
  7.         include powerpc_lib.i
  8.         include exec_lib.i
  9.         include dos_lib.i
  10.  
  11.         xref    _SysBase
  12.         xref    _DOSBase
  13.         xref    _PowerPCBase
  14.         xref    _LinkerDB
  15.         smalldata
  16.         executable
  17.         escapestr
  18.         version 9
  19.  
  20. start
  21.         prolog  1024
  22.         push    r31
  23.         la      _d1,template
  24.         la      _d2,Array
  25.         li      _d3,0
  26.         RUN68K_XL       _DOSBase,ReadArgs
  27.         tstw    _d0
  28.         beq     .close
  29.         mr      r31,_d0
  30.         lw      r3,Array
  31.         tstw    r3
  32.         beq     .clear
  33.         lbz     r4,0(r3)
  34.         li      r5,0
  35.         cmplwi  r4,"$"
  36.         bne     .loop
  37.         addi    r3,r3,1
  38. .loop
  39.         lbz     r4,0(r3)
  40.         tstw    r4
  41.         beq     .done
  42.         slwi    r5,r5,4
  43.         cmplwi  r4,"0"
  44.         blt     .letter
  45.         cmplwi  r4,"9"
  46.         ble     .number
  47. .letter
  48.         bitclr  r4,31-5
  49.         subi    r4,r4,("A"-10)
  50.         b       .cont
  51. .number
  52.         subi    r4,r4,"0"
  53. .cont
  54.         add     r5,r5,r4
  55.         addi    r3,r3,1
  56.         b       .loop
  57. .done
  58.         sw      r5,Args
  59.         li      r4,HW_SETDBREAK
  60.         CALLPOWERPC     SetHardware
  61.         cmplwi  r3,HW_NOTAVAILABLE
  62.         beq     .notavailable
  63.         la      _d1,setbreak
  64.         la      _d2,Args
  65.         RUN68K_XL       _DOSBase,VPrintf
  66.         b       .free
  67. .clear
  68.         li      r4,HW_CLEARDBREAK
  69.         CALLPOWERPC     SetHardware
  70.         cmplwi  r3,HW_NOTAVAILABLE
  71.         beq     .notavailable
  72.         la      _d1,clearbreak
  73.         la      _d2,Args
  74.         RUN68K_XL       _DOSBase,VPrintf
  75.         b       .free
  76. .notavailable
  77.         la      _d1,notavailable
  78.         la      _d2,Args
  79.         RUN68K_XL       _DOSBase,VPrintf
  80. .free
  81.         mr      _d1,r31
  82.         RUN68K_XL       _DOSBase,FreeArgs
  83. .close
  84.         pop     r31
  85.         epilog
  86.  
  87.         section data
  88. template        dc.b    "ADDRESS",0
  89. setbreak        dc.b    "data breakpoint set at %08lx\n",0
  90. clearbreak      dc.b    "data breakpoint cleared\n",0
  91. notavailable    dc.b    "data breakpoint not available on this CPU\n",0
  92.  
  93.         section bss
  94.         ds.b    32
  95. Array           ds.l    1
  96. Address         ds.l    1
  97. Args            ds.l    1
  98.         ds.b    32
  99.         even
  100.